查看原文
其他

如何让LLM更聪明

renee创业狗 Renee 创业随笔
2024-10-08

今天我们公司的HR做了一个关于《通过认知心理学做出更好决策》的分享,和之前在NUS听乌老师的《商业分析与决策》课程有很多相似之处。

做出决策的核心是知道自己的边界,然后可以采用一系列方法和工具来提高决策质量。 我之前研究如何让LLM更聪明时,也发现了类似的手段。

大语言模型是一种概率模型。如果让它快速回答问题,它就会采用系统一(快思考)。

有多种方法可以使现有的大模型LLM更聪明,大致有四类:

1. 更好地提问

LLM的训练过程使用了大量的数据,远超我们所阅读的书籍和网络内容。

因此,提出好问题可以更好地发挥LLM的潜力。关于如何构建问题提示(Prompt),有很多书籍和网站提供指导,其基本逻辑如下:

元素名称说明
任务TaskGPT 需要生成的内容类型
指令Instructions在生成内容时应遵循的原则
角色RoleGPT 需要扮演的角色
关键词Seed-word需要强调的点

比如:

Task: 撰写一篇公众号文章,介绍如何让LLM更聪明。

Instructions:
语言风格:轻松风趣
字数要求:不要超过100字
输出方式:Jason / html
输出结果:3个
RAG:找出相应的引文,并根据引文回答问题  
Temperature - 0-1(从保守到野,分值越小越保守)
CoT:一步步思考
Few-Shot/One-Shot:举个例子

Role: 资深公众号运营人员

Seed-word: “系统一、系统二”

使用Few-Shot结合Chain-of-Thought (CoT)

直接询问LLM“1364乘以2343等于多少?”可能得到错误的答案。

但是,我们可以通过修改prompt来改进这一过程,例如:

1245534乘以24325等于多少?解题步骤如下:
将24325分解成个位、十位、百位、千位和万位:
24325 = 5 * 1 + 2 * 10 + 3 * 100 + 4 * 1000 + 2 * 10000
因此,1245534乘以24325可以分解为:
1245534 * 5 * 1 = 6227670
1245534 * 2 * 10 = 24910680
1245534 * 3 * 100 = 373660200
1245534 * 4 * 1000 = 4982136000
1245534 * 2 * 10000 = 24910680000
然后将结果相加:
6227670 + 24910680 = 31138350
31138350 + 373660200 = 404798550
404798550 + 4982136000 = 5386934550
5386934550 + 24910680000 = 30297614550
现在,根据上面的解题方法,计算1364乘以2343等于多少。

这次答案就对了:

这个过程类似于做决策的流程。单凭自己的思考做决策可能不够好,可以使用这样的决策流程,类似于LLM通过Few-Shot引用CoT来改善决策过程。


2. 微调(Fine-Tune)

我之前听过一个播客,里面提到如果在微调(Fine-Tune)过程中增强对某一方面的模仿能力,其他方面的能力可能会减弱。但这种方式可以让LLM朝我们希望的方向变得更聪明。

需要明确的是,Fine-Tune与上面提到的Few-Shot是有区别的。Fine-Tune会改变模型本身,而Few-Shot不改变模型结构。

例如,如果你给小孩举例,说明一个苹果加一个苹果等于两个苹果,一个梨加一个梨等于几个梨(Few-Shot),这时他的数学能力并没有提高,但因为有了具体例子,解决问题的能力提升了。相比之下,如果你在考试前夜给小孩进行数学强化训练(Fine-Tune),然后让他参加考试,他的数学成绩可能会提高(但是可能影响到同一天的语文成绩),这样做和举例子比起来改变了他的大脑模型。

这与使用决策模型相似。你可以根据倾向选择适当的方向来引导和训练大脑。可能在习惯了理性决策后,就不太容易做出感性决策。因此,选择最合适的方法,或者针对特定情景选择最恰当的方法,是很重要的。


3. RAG(Retrieval Augmented Generation)

RAG(Retrieval Augmented Generation,检索增强生成)是一种技术,其中大型语言模型(LLM)在回答问题或生成文本时,会先从大量文档中检索相关信息,然后基于这些检索到的信息进行回答或生成文本。这样做可以提高回答的质量,而不是单纯依赖LLM本身的能力。RAG技术使开发者无需为每个特定任务重新训练整个大型模型,只需附加相关的知识库即可,这样可以为模型提供额外的信息输入,从而提高回答的准确性。RAG技术的工作流程如下图所示。

在我看来,使用RAG做得比较好的是Claude2。

还有一些表现不错的是Perplexity、txyz、ChatGPT、chatpdf等。

这个过程有点类似于我们做决策时的方法:当我们知道自己在某个方面不够强时,我们可以寻求该领域的专业人士进行针对性咨询。通过利用他们的专业知识,我们可以做出更加明智的决策。比如这个泰国睡美人洞救援案件,就是RAG了不同专家的Data。


4. 函数调用(Function Call)和使用工具。

GPT上次发布会就宣布了Function Call的功能。极大拓展了LLM可以做的事情的边界。

GPT的最新版本变得更加聪明,主要是通过将之前的代码解释器作为分析功能融入其中,因此它可以在处理复杂问题时调用Python。

在这个功能出现之前,我最早看到的相关论文是《Program-Aided Language (PAL) Models》,这种模型使用大型语言模型来理解问题,并利用Python进行计算。

PAL随后也被集成到了开源框架Langchain中。

Langchain自身还开发了Math chain这一功能。

当然,OpenAI还提供了各种插件,例如计算器。

这个调用函数和使用工具过程与我们做决策时的方法相似:我们可能知道自己的能力有限,但我们可以利用各种工具来辅助决策。通过使用这些工具,我们可以更有效地解决问题和做出更好的决策。


写在最后

正如我们在日常生活中做决策时会寻求信息、咨询专家或使用各种工具一样,大型语言模型(LLM)的发展同样反映出这种多元化和综合性的思维模式。无论是通过更好地提问、微调模型、使用检索增强生成(RAG)技术,还是学会有效地调用函数和使用工具,这些策略都强调了在面对复杂问题时灵活运用资源和技术的重要性。希望我司的童鞋们能够学会更好地使用LLM的方法,让LLM变得更聪明;也掌握更有效的决策机制,让自己变得更聪明。

继续滑动看下一个
Renee 创业随笔
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存